package other.refereance;

import java.lang.ref.PhantomReference;
import java.lang.ref.ReferenceQueue;
import java.util.LinkedList;
import java.util.List;

//虚引用用于管理堆外内存
/*
比如网络中传输过来一堆数据，jvm需要将其拷贝到jvm内存里面，否则就无法进行垃圾回收
但是这个拷贝是要耗时的，于是提供了直接内存，直接对堆外内存【操作系统管理的内存】进行操作
这里就用到虚引用，
 */
public class T04_PhantomReference {

    private static final List<Object> LIST = new LinkedList<>();
    private static final ReferenceQueue<M> QUEUE = new ReferenceQueue<>();

    public static void main(String[] args) {
        //虚引用被回收的时候会将信息记录在第二个参数的队列中
        PhantomReference<M> phantomReference = new PhantomReference<>(new M(1, "1"), QUEUE);

    }
}
